package com.ktjy.mapper;


import java.lang.reflect.Method;

public class ReflectionMethodInvocation {
    public static void main(String[] args) {
        try {
            // 创建 MyJavaBean 类的实例
            MyJavaBean bean = new MyJavaBean();
            // 获取类的 Class 对象
            Class<?> clazz = MyJavaBean.class;
            // 调用实例方法
            // 根据方法名和参数类型获取 Method 实例
            Method instanceMethod = clazz.getMethod("instanceMethod", String.class);
            // 调用实例方法，第一个参数是实例对象，后续参数是方法的实际参数
            Object instanceResult = instanceMethod.invoke(bean, "Hello");
            System.out.println(instanceResult);
            // 调用静态方法
            // 根据方法名和参数类型获取 Method 实例
            Method staticMethod = clazz.getMethod("staticMethod", String.class);
            // 调用静态方法，第一个参数为 null，因为静态方法不需要实例对象
            Object staticResult = staticMethod.invoke(null, "World");
            System.out.println(staticResult);
        } catch (NoSuchMethodException | IllegalAccessException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}
